17-2 @諻π

一般而言,電腦程式可能發生的錯誤可分兩種

對於前者,MATLAB 會發現大部份的語法錯誤,並顯示相關的錯誤訊息,因此只要您對於程式語言有相當瞭解,語法錯誤是相當容易解決的。但對於邏輯錯誤而言,MATLAB 會在執行完畢後產生不合理的結果,但此時所有函數的工作空間和相關變數都已經消失,因此在除錯上困難度較高。

一般偵測邏輯錯誤的方法,有下列幾種:

  1. 去除運算式最尾端的分號。去掉分號後,MATLAB 會將運算式執行的結果印在 MATLAB 指令視窗中,我們就可以據以找出可能發生錯誤的地方。
  2. 在程式中加入 keyboard 指令,可使程式執行至此處即暫停,並顯示“k >”的提示號(k 代表 keyboard)。此時我們可以任意查看或改變工作空間的任何變數。若要繼續執行程式,可在 MATLAB 指令視窗下輸入“return”並按下 Enter 鍵。
  3. 在特定情況下,使用 fprintf 指令印出變數的值。例如,在一個迴圈跑到第六次時,我們要印出變數 x 的值,就可以使用if 指令來判斷迴圈的次數,並使用 fprintf 來印出相關變數的值。
  4. 若是在除錯一個單獨函數時,可在其第一列的函數宣告列加上 %,並定義輸入引數的值,此時我們就可以直接以腳本(Scripts)的方式來執行此 M 檔案,並保留所有變數於 MATLAB 工作空間之中 ,以便後續察看及除錯。
  5. 使用 MATLAB 除錯程式。善用這些除錯函數,可以迅速地找出您的程式錯誤,詳見下兩節說明。

MATLAB程式設計:入門篇